package com.ruoyi.applet.service;

import com.ruoyi.applet.OutDTO.UserRankDTO;
import com.ruoyi.applet.domain.AppletWalkRow;
import com.ruoyi.applet.domain.WechatUser;
import com.brisk.common.core.domain.AjaxResult;

import java.util.List;

/**
 * weChatUserService接口
 *
 * @author PengFei
 * @date 2022-05-31
 */
public interface IWechatUserService {
    /**
     * 查询weChatUser
     *
     * @param userId weChatUser主键
     * @return weChatUser
     */
    WechatUser selectWechatUserByUserId(Long userId);

    /**
     * 查询weChatUser列表
     *
     * @param wechatUser weChatUser
     * @return weChatUser集合
     */
    List<WechatUser> selectWechatUserList(WechatUser wechatUser);

    List<WechatUser> selectWechatRankList(WechatUser wechatUser);


    /**
     * 新增weChatUser
     *
     * @param wechatUser weChatUser
     * @return 结果
     */
    int insertWechatUser(WechatUser wechatUser);

    /**
     * 修改weChatUser
     *
     * @param wechatUser weChatUser
     * @return 结果
     */
    int updateWechatUser(WechatUser wechatUser);

    /**
     * 批量删除weChatUser
     *
     * @param userIds 需要删除的weChatUser主键集合
     * @return 结果
     */
    int deleteWechatUserByUserIds(Long[] userIds);

    /**
     * 删除weChatUser信息
     *
     * @param userId weChatUser主键
     * @return 结果
     */
    int deleteWechatUserByUserId(Long userId);


    /**
     * 微信授权登录
     *
     * @return com.ruoyi.common.core.domain.AjaxResult
     * @author PengFei Deng
     * @date 2022/5/31 14:52
     */
    WechatUser wxLogin(String openid);


    AjaxResult updateWxData(String nickName, String avatarUrl, Long userId);


    AjaxResult userRegister(WechatUser wechatUser);


    List<UserRankDTO> getPeopleRankingList(List<WechatUser> rankList);

    List<UserRankDTO> getTodayRankingList(List<AppletWalkRow> walkRowList);


    AjaxResult getUserConvertInfo(Long userId);


    int getUserRankInRankList(Long userId);


    AjaxResult getUserScoreRankList(Integer pageNum, Integer pageSize);


    AjaxResult getUserCertificate(Long userId);


}
